Column

Chart A

Column

Chart B

Chart C

---
title: "Dashboard"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    source_code: embed
---

```{r setup, include=FALSE}
library(flexdashboard)
library(tidyverse)
library(p8105.datasets)

library(plotly)
```

```{r}
data("instacart")
```

Column {data-width=650}
-----------------------------------------------------------------------

### Chart A

```{r}
instacart %>% 
  group_by(aisle) %>% 
  summarize(
    n_obs = n()) %>% 
  arrange(-n_obs) %>% 
  filter(n_obs > 10000) %>% 
  mutate(aisle = forcats::fct_reorder(aisle, n_obs)) %>% 
  plot_ly(
    x = ~aisle, y = ~n_obs, type = "bar",
    color = "bule") %>% 
  layout(
    title = "The number of items ordered in each aisle",
    xaxis = list(title = ''), 
    yaxis = list(title = 'Number of items'))
```

Column {data-width=350}
-----------------------------------------------------------------------

### Chart B

```{r}
instacart %>%
  mutate(
    department = fct_reorder(factor(department), add_to_cart_order)
  ) %>% 
  filter(add_to_cart_order <= 20) %>% 
  group_by(department) %>% 
  plot_ly(x = ~ department, y = ~ add_to_cart_order, type = "box") %>% 
  layout(
    title = "The add to cart order for each department",
    xaxis = list(title = 'Department'), 
    yaxis = list(title = 'Add to car order'))
```

### Chart C

```{r}
instacart %>% 
  filter(order_id <= 10000) %>% 
  mutate(
    text_lable = str_c("Order day of week: ", order_dow, "\nOdder number: ", order_number)
  ) %>% 
  group_by(order_id) %>% 
  plot_ly(x = ~order_dow, y = ~order_number, 
          type = "violin", text = ~text_lable) %>% 
  layout(
    title = "The order number on each day of week",
    xaxis = list(title = 'Oder day of week', tick0 = 0, dtick = 1), 
    yaxis = list(title = 'Order number'))
```